#pragma once

#include <cftc/reflect/object.h>
#include <cftf/meta/table.h>

namespace mt
{

    class GameObjectData : public cftc::reflect::Object, public cftf::meta::Table<GameObjectData, unsigned int>
    {
        CFT_DECLARE_REFLECT_CLASS();
    public:
        unsigned int guid = 0;
        unsigned int id = 0;                                              // entry in gameobject_template
        unsigned int mapid = 0;
        float posX = 0;
        float posY = 0;
        float posZ = 0;
        float orientation = 0;
        float rotation0 = 0;                                        // i component of rotation quaternion
        float rotation1 = 0;                                        // j
        float rotation2 = 0;                                        // k
        float rotation3 = 0;                                        // w
        int  spawntimesecs = 0;
        unsigned int animprogress = 0;
#if 1
        int go_state = 0;
#else
        GOState go_state;
#endif


        unsigned int gameEvent = 0;
        unsigned int GuidPoolId = 0;
        unsigned int EntryPoolId = 0;
    };

}
